package cn.tedu.api;
/*本类用于测试包装类*/
public class TestNumber {
    static Integer i0;
    static int i;
    static double d;
    public static void main(String[] args) {
        /*包装类型也是引用类型,默认值是null*/
        System.out.println(i0);//null not  0
        System.out.println(i);
        System.out.println(d);

        //3.创建int类型对应的包装类型Integer的对象--方式1
        Integer i1 = new Integer(5);
        Integer i11 = new Integer(5);
        System.out.println(i1);
        System.out.println(i11);
        System.out.println(i1 == i11);//false,引用类型,比较地址值

        //4.创建int类型对应的包装类型Integer的对象--方式2
        /*Integer有一个高效的效果,如果使用valueOf()的创建方式
         * 并且数据在-128~127范围内,相同的数据只会存一次
         * 后续再存都是使用之前存过的数据*/
        Integer i2 = Integer.valueOf(127); //相当于存储在常量池里面,类似String字符串的高效创建
        Integer i3 = Integer.valueOf(127);
        System.out.println(i2 == i3);//true
        //满足高效效果的3个条件:Integer valueOf() -128~127才能高效
        Integer i4 = Integer.valueOf(300);
        Integer i5 = Integer.valueOf(300);
        System.out.println(i4 == i5);//false

        //5.创建double类型对应的包装类型Double的对象--方式1
        Double d1 = new Double(3.14);
        Double d2 = new Double(3.14);
        System.out.println(d1 == d2);//false

        //6.创建double类型对应的包装类型Double的对象--方式2
        Double d3 = Double.valueOf(3.14);
        Double d33 = Double.valueOf(3.14);
        System.out.println(d1 == d3);//false
        System.out.println(d3 == d33);//false

        //7.测试常用方法
        //parseInt():将String类型的数据转成int类型
        System.out.println(Integer.parseInt("800")+8);//808
        //parseDouble():将String类型的数据转成double类型
        System.out.println(Double.parseDouble("2.2")+1.1);//3.3
    }
}
